/**
 * 
 */
package net.danielpaz.puc.poo.frigorifico.model;

import java.sql.*;

/**
 * @author Junior
 *
 */
public class PedidoDAO {
    public BD bd;
    private Pedido pedido;
    private PreparedStatement statement;
    private ResultSet resultSet;
    private String men, sql;
    public static final byte INCLUSAO = 1;
    public static final byte ALTERACAO = 2;
    public static final byte EXCLUSAO = 3;

    public PedidoDAO() {
        bd = new BD();
        pedido = new Pedido();
    }

    public boolean localizar() {
        sql = "select * from pedido where numeroPedido = ?";
        try{
            statement = bd.connection.prepareStatement(sql);
            statement.setInt(1, pedido.getNumeroPedido());
            resultSet = statement.executeQuery();
            while (resultSet.next()) {
            	 pedido.setNumeroPedido(resultSet.getInt(1));
                 pedido.setData(resultSet.getDate(2));
                 pedido.setStatus(resultSet.getInt(3));
                 pedido.setValorPedido(resultSet.getDouble(4));
            }
            return true;
        }
        catch (SQLException erro) {
        	erro.printStackTrace();
            return false;
        }
    }
    public String atualizar(int operacao) {
        men = "Operacao realizada com sucesso!";
        try {
            if (operacao==INCLUSAO){
                sql = "insert into pedido (numeroPedido, usuario_Id, data, valorPedido, status, produto_Id) values (?,?,getDate(),?,?,?)";
                statement = bd.connection.prepareStatement(sql);
                statement.setInt(1, pedido.getNumeroPedido());
                statement.setDate(2, (Date) pedido.getData());
                statement.setInt(3, pedido.getStatus());
                statement.setDouble(4, pedido.getValorPedido());
            }
            else if (operacao==ALTERACAO){
                sql = "update pedido set valorTotal = ?, status = ?, " +
                        " where numeroPedido = ? and status = 0";
                statement = bd.connection.prepareStatement(sql);
                statement.setInt(4, pedido.getNumeroPedido());
                statement.setDate(1, (Date) pedido.getData());
                statement.setDouble(2, pedido.getValorPedido());
                statement.setInt(3, pedido.getStatus());
            }
            else if (operacao==EXCLUSAO){
                sql = "delete from pedido where numeroPedido = ?";
                statement = bd.connection.prepareStatement(sql);
                statement.setInt(1, pedido.getNumeroPedido());
            }
            if (statement.executeUpdate() == 0)
                men = "Falha na operacao!";
        } catch (SQLException erro) {
            men = "Falha na operacao " + erro.toString();
        }
        return men;
    }

	public int GerarNovoNumero() {
		// TODO Auto-generated method stub
		return 0;
	}
}